<?php

namespace App\Http\Controllers\Landscaping;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Landscaping\ParkMessage;
use Illuminate\Database\QueryException;
use App\Http\Requests\Landscaping\ParkMessageRequest;

/**
 * @group 基础信息管理->绿化->园林养护信息管理
 *
 * 采用 restful api
 *
 * Body Parameters 表示请求的所需要的参数
 *
 * Query Parameters 表示返回参数的名称
 */

class ParkMessageController extends Controller
{
    /**
     * 园林养护信息查看列表
     *
     * @bodyParam  message_name string 养护信息题名
     * @bodyParam  upload_id int 上传人 外键 员工表
     *
     * @queryParam  message_name string 养护信息题名
     * @queryParam  message_keyword string 养护信息关键词
     * @queryParam  message_content text 养护信息内容
     * @queryParam  upload_id int 上传人 外键 员工表
     * @queryParam  attached_page int 附件页数
     * @queryParam  message_user string 适用人群
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $parkMessage = new ParkMessage;
        $data = $parkMessage->getList($request);
        return response()->json(encodeMsg($data,200));
    }

    /**
     * 添加园林养护信息
     *
     * @bodyParam  message_name string required 养护信息题名
     * @bodyParam  message_keyword string required 养护信息关键词
     * @bodyParam  message_content text required 养护信息内容
     * @bodyParam  upload_id int required 上传人 外键 员工表
     * @bodyParam  attached_page int required 附件页数
     * @bodyParam  message_user string required 适用人群
     *
     * @queryParam  message_name string 养护信息题名
     * @queryParam  message_keyword string 养护信息关键词
     * @queryParam  message_content text 养护信息内容
     * @queryParam  upload_id int 上传人 外键 员工表
     * @queryParam  attached_page int 附件页数
     * @queryParam  message_user string 适用人群
     *
     * @return \Illuminate\Http\Response
     */
    public function store(ParkMessageRequest $request)
    {
        try {
            $data = ParkMessage::create($request->all());
            return response()->json(encodeMsg($data,200));
        } catch (QueryException $e) {
            return response()->json(encodeMsg(['message' => '养护信息添加失败!'],400));
        }
    }

    /**
     * 查看园林养护信息
     *
     * @bodyParam id int required  园林养护信息ID
     *
     * @queryParam  message_name string 养护信息题名
     * @queryParam  message_keyword string 养护信息关键词
     * @queryParam  message_content text 养护信息内容
     * @queryParam  upload_id int 上传人 外键 员工表
     * @queryParam  attached_page int 附件页数
     * @queryParam  message_user string 适用人群
     *
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $data = ParkMessage::find($id);
        if($data == []) {
            return response()->json(encodeMsg(["message" => "没有该园林养护信息!"], 404));
        } else {
            return response()->json(encodeMsg($data,200));
        }
    }

    /**
     * 修改园林养护信息
     *
     * @bodyParam  message_name string required 养护信息题名
     * @bodyParam  message_keyword string required 养护信息关键词
     * @bodyParam  message_content text required 养护信息内容
     * @bodyParam  upload_id int required 上传人 外键 员工表
     * @bodyParam  attached_page int required 附件页数
     * @bodyParam  message_user string required 适用人群
     *
     * @queryParam  message_name string 养护信息题名
     * @queryParam  message_keyword string 养护信息关键词
     * @queryParam  message_content text 养护信息内容
     * @queryParam  upload_id int 上传人 外键 员工表
     * @queryParam  attached_page int 附件页数
     * @queryParam  message_user string 适用人群
     *
     * @return \Illuminate\Http\Response
     */
    public function update(ParkMessageRequest $request, $id)
    {
        $parkMessage = ParkMessage::find($id);
        if($parkMessage == []) {
            return response()->json(encodeMsg(["message" => "没有该园林养护信息!"], 404));
        }
        try {
            $parkMessage->update($request->all());
            return response()->json(encodeMsg($parkMessage,200));
        } catch (QueryException $e) {
            return response()->json(encodeMsg(['message' => '养护信息修改失败!'],400));
        }
    }

    /**
     * 删除园林养护信息
     *
     * @bodyParam id int required  园林养护信息ID
     * @response 204 {
     *   "message": "虫害规程删除成功"
     * }
     *
     *
     * @response 404 {
     *  "message": "没有该园林养护信息"
     * }
     */
    public function destroy($id)
    {
        $parkMessage = ParkMessage::find($id);
        if($parkMessage == []) {
            return response()->json(encodeMsg(["message" => "没有该园林养护信息!"], 404));
        }
        if($parkMessage->delete()) {
            return response()->json(encodeMsg(["message" => "养护信息删除成功!"], 204));
        } else {
            return response()->json(encodeMsg(["message" => "养护信息删除失败!"], 400));
        }
    }

    /**
     * 批量删除
     *
     * @param  int  $ids id集合字符串 如:1,2,3,4
     * @return \Illuminate\Http\Response
     */
    public function delete($ids)
    {
        $listId = explode(',', $ids);
        foreach ($listId as $id) {
        }
        ParkMessage::whereIn('id',$listId)->delete();
        return response()->json(encodeMsg(["message" => "养护信息删除成功!"], 204));
    }
}
